
#ifndef __COMPONENTTEMPLATE_HPP__
#define __COMPONENTTEMPLATE_HPP__

#include "GameComponent.h"

class GameObject;

class GameComponentTemplate {
public:
	GameComponentTemplate() {}
	virtual ~GameComponentTemplate() = 0 {};

	// returns the ComponentID that, by default, we should
	// register created Component as
	virtual const comp_id_type& componentID() const = 0;
	virtual const comp_id_type& familyID() const = 0;

	virtual GameComponent* makeComponent() = 0;
};

#endif
